package com.xxx.ware.ware_manage_sys.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xxx.ware.ware_manage_sys.bean.dto.UserQueryDto;
import com.xxx.ware.ware_manage_sys.bean.dto.UserSaveUpdateDto;
import com.xxx.ware.ware_manage_sys.bean.dto.WebResultDto;
import com.xxx.ware.ware_manage_sys.bean.entity.user.WmsUser;
import com.xxx.ware.ware_manage_sys.bean.vo.UserVo;

import java.util.List;
import java.util.Map;

public interface IUserService extends IService<WmsUser> {
    /**
     * 添加用户
     * @param userSaveUpdateDto
     * @return
     */
    Boolean saveUser(UserSaveUpdateDto userSaveUpdateDto) throws Exception;

    /**
     * 获取唯一用户（用户账号+用户姓名+用户联系方式+状态为生效）
     * @param userAccount 用户账号
     * @param userName    用户姓名
     * @param userPhone   用户联系方式
     * @return
     */
    WmsUser getUserBySoleKey(String userAccount, String userName, String userPhone);

    /**
     * 获取用户列表
     * @param userQueryDto
     * @return
     */
    WebResultDto<UserVo> getUserList(UserQueryDto userQueryDto) throws Exception;

    /**
     * 更新用户信息
     * @param userSaveUpdateDto
     * @return
     */
    Boolean updateUser(UserSaveUpdateDto userSaveUpdateDto) throws Exception;

    /**
     * 删除用户
     * @param id
     * @return
     */
    Boolean removeUser(Long id) throws Exception;

    /**
     * 获取用户信息
     * @param userName
     * @param userPwd
     * @return
     * @throws Exception
     */
    UserVo getUserByNamePwd(String userName, String userPwd) throws Exception;

    /**
     * 获取用户详情
     * @param id
     * @return
     */
    UserVo getUserDetail(Long id);
}
